package com.edu.mybatis.mappers;

import com.edu.mybatis.pojo.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EmployeeMapper {
    List<Employee> getAllEmployeesA();

    List<Employee> getAllEmployeesB();

    Employee getEmployeeAndDepartment(@Param("employee_id") Integer employeeId);

    /**
     * 分布查询的优点：可以实现延迟加载，但是必须在核心配置文件中设置全局配置信息
     * lazyLoadingEnabled:延迟加载的全局开关。当开启时，所有关联对象都会延迟加载
     * aggressiveLazyLoading:当开启时，任何方法的调用都会加载该对象的所有属性。否则，每个属性会按需加载。
     *
     * @param employeeId
     * @return
     */
    Employee getEmployeeAndDepartmentByStep1(@Param("employee_id") Integer employeeId);

    List<Employee> getEmployeesByDepartmentId(@Param("employee_id") Integer employeeId);
}
